/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package biofilter.records;

import biofilter.sources.RecordsFile;
import java.util.Iterator;
import java.util.LinkedList;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author qvh
 */
public class OperonRecordTest {
public LinkedList<String> lines = new LinkedList<String>();
public LinkedList<GFFRecord> gffs = new LinkedList<GFFRecord>();
public LinkedList<ScoredRegionRecord> srr = new LinkedList<ScoredRegionRecord>();
public OperonRecord instance = null;
public OperonRecord instance2 = null;
public OperonRecord instance3 = null;
    public void init(){
        lineinit();
        
        Iterator i = lines.iterator();
        while(i.hasNext()){
            GFFRecord gff = new GFFRecord();
            gff.set( (String) i.next());
            ScoredRegionRecord sr = new ScoredRegionRecord();
            sr.setGFF(gff);
            srr.add(sr);
        }

        //lines[32]="NC_009012.1	RefSeq	GAP	25916	25945	16.533333333333335	.	.	.";
        //lines[33]="NC_009012.1	RefSeq	CDS	25946	26257	22.020833333333332	+	0	locus_tag=Cthe_0018;note=KEGG:%20dsy:DSY3596%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036453.1;db_xref=GI:125972543;db_xref=GeneID:4808783;exon_number=1";
        //lines[34]="NC_009012.1	RefSeq	GAP	26258	26275	36.333333333333336	.	.	.";
        //lines[35]="NC_009012.1	RefSeq	CDS	26276	26599	50.901234567901234	+	0	locus_tag=Cthe_0019;note=KEGG:%20tde:TDE0322%20regulatory%20protein%2C%20P-II%20family;transl_table=11;product=P-II%20family%20regulatory%20protein;protein_id=YP_001036454.1;db_xref=GI:125972544;db_xref=GeneID:4808784;exon_number=1";
        //lines[36]="NC_009012.1	RefSeq	GAP	26600	26796	2.032994923857868	.	.	.";
        instance = new OperonRecord();
        instance.add(srr.get(32));
        instance.add(srr.get(33));
        instance.add(srr.get(34));
        instance.add(srr.get(35));
        instance.add(srr.get(36));

        //37="NC_009012.1	RefSeq	CDS	26797	27756	0.31614583333333335	+	0	locus_tag=Cthe_0020;EC_number=2.8.1.6;note=KEGG:%20ctc:CTC00151%20biotin%20synthase%3B%0ATIGRFAM:%20biotin%20synthase%3B%0APFAM:%20Radical%20SAM%3B%20biotin%20and%20thiamin%20synthesis%20associated%3B%0ASMART:%20Elongator%20protein%203%2FMiaB%2FNifB;transl_table=11;product=biotin%20synthase;protein_id=YP_001036455.1;db_xref=InterPro:IPR002684;db_xref=InterPro:IPR006638;db_xref=InterPro:IPR007197;db_xref=InterPro:IPR010722;db_xref=GI:125972545;db_xref=GeneID:4808785;exon_number=1");
        //38="NC_009012.1	RefSeq	CDS	27756	28487	0.0	+	0	locus_tag=Cthe_0021;EC_number=6.3.3.3;note=TIGRFAM:%20dethiobiotin%20synthase%3B%0AKEGG:%20cac:CAC1361%20dethiobiotin%20synthetase;transl_table=11;product=dethiobiotin%20synthase;protein_id=YP_001036456.1;db_xref=InterPro:IPR004472;db_xref=GI:125972546;db_xref=GeneID:4808786;exon_number=1");
        //39="NC_009012.1	RefSeq	CDS	28483	29646	0.0	+	0	locus_tag=Cthe_0022;EC_number=2.3.1.29;note=KEGG:%20gsu:GSU2629%208-amino-7-oxononanoate%20synthase%3B%0ATIGRFAM:%208-amino-7-oxononanoate%20synthase%3B%0APFAM:%20aminotransferase%2C%20class%20I%20and%20II%3B%20aminotransferase%20class-III;transl_table=11;product=2-amino-3-ketobutyrate%20coenzyme%20A%20ligase;protein_id=YP_001036457.1;db_xref=InterPro:IPR001917;db_xref=InterPro:IPR004723;db_xref=InterPro:IPR004839;db_xref=InterPro:IPR005814;db_xref=GI:125972547;db_xref=GeneID:4808787;exon_number=1");
        //40="NC_009012.1	RefSeq	GAP	29647	29648	0.0	.	.	.");
        //41="NC_009012.1	RefSeq	CDS	29649	30422	0.43733850129198965	+	0	locus_tag=Cthe_0023;note=KEGG:%20gka:GK3098%20pimeloyl-CoA%20synthesis%20%28biotin%20biosynthesis%29;transl_table=11;product=pimeloyl-CoA%20synthesis%20%28biotin%20biosynthesis%29;protein_id=YP_001036458.1;db_xref=InterPro:IPR003089;db_xref=InterPro:IPR008262;db_xref=GI:125972548;db_xref=GeneID:4808788;exon_number=1");
        //42="NC_009012.1	RefSeq	CDS	30415	31263	0.20141342756183744	+	0	locus_tag=Cthe_0024;note=TIGRFAM:%20biotin%20biosynthesis%20protein%20BioC%3B%0APFAM:%20NodS%3B%20Methyltransferase%20type%2011%3B%20Methyltransferase%20type%2012%3B%0AKEGG:%20btk:BT9727_3857%20possible%20biotin%20synthesis%20protein;transl_table=11;product=biotin%20biosynthesis%20protein%20BioC;protein_id=YP_001036459.1;db_xref=InterPro:IPR000051;db_xref=InterPro:IPR008715;db_xref=InterPro:IPR011814;db_xref=InterPro:IPR013216;db_xref=InterPro:IPR013217;db_xref=GI:125972549;db_xref=GeneID:4808789;exon_number=1");

        instance2 = new OperonRecord();
        instance2.add(srr.get(37));
        instance2.add(srr.get(38));
        instance2.add(srr.get(39));
        instance2.add(srr.get(40));
        instance2.add(srr.get(41));

        instance3 = new OperonRecord();
        instance3.add(srr.get(34));
        instance3.add(srr.get(35));
        instance3.add(srr.get(36));
        instance3.add(srr.get(37));
        instance3.add(srr.get(38));


    }

    public OperonRecordTest() {

    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of size method, of class OperonRecord.
     */
    @Test
    public void testSize() {
        System.out.println("size");
        init();
        int expResult = 5;
        int result = instance.size();
        assertEquals(expResult, result);
    }

    /**
     * Test of getPos method, of class OperonRecord.
     */
    @Test
    public void testGetPos() {
        System.out.println("getPos");
        init();
        int i = 3;//lines[35]="NC_009012.1	RefSeq	CDS	26276	26599	50.901234567901234	+	0	locus_tag=Cthe_0019;note=KEGG:%20tde:TDE0322%20regulatory%20protein%2C%20P-II%20family;transl_table=11;product=P-II%20family%20regulatory%20protein;protein_id=YP_001036454.1;db_xref=GI:125972544;db_xref=GeneID:4808784;exon_number=1";
        ScoredRegionRecord expResult = srr.get(35);
        ScoredRegionRecord result = instance.getPos(i);
        System.err.println(expResult.get());
        System.err.println(result.get());
        assertEquals(expResult, result);
    }

    /**
     * Test of add method, of class OperonRecord.
     */
    @Test
    public void testAdd_OperonRecord() {
        System.out.println("add");
        init();
        this.instance.add(instance2);
        assertEquals(instance.size(), 10);
        this.instance3.add(instance2);
        assertEquals(instance3.size(), 8);
    }

    /**
     * Test of add method, of class OperonRecord.
     */
    @Test
    public void testAdd_ScoredRegionRecord() {
        System.out.println("add");
        init();
    }

    /**
     * Test of getSeqid method, of class OperonRecord.
     */
    @Test
    public void testGetSeqid() {
        System.out.println("getSeqid");
        init();
        String expResult = "NC_009012.1";
        String result = instance.getSeqid();
        assertEquals(expResult, result);
    }

    /**
     * Test of getSource method, of class OperonRecord.
     */
    @Test
    public void testGetSource() {
        System.out.println("getSource");
        String expResult = "ORNLOperonFinder";
        init();
        String result = instance.getSource();
        assertEquals(expResult, result);
    }

    /**
     * Test of getType method, of class OperonRecord.
     */
    @Test
    public void testGetType() {
        System.out.println("getType");
        init();
        String expResult = "OPERON";
        String result = instance.getType();
        assertEquals(expResult, result);
    }

    /**
     * Test of getStart method, of class OperonRecord.
     */
    @Test
    public void testGetStart() {
        System.out.println("getStart");
        init();
        int expResult = 25946;
        int result = instance.getStart();
        assertEquals(expResult, result);
    }

    /**
     * Test of getEnd method, of class OperonRecord.
     */
    @Test
    public void testGetEnd() {
        System.out.println("getEnd");
        init();
        int expResult = 26599;
        int result = instance.getEnd();
        assertEquals(expResult, result);
    }

    /**
     * Test of getScore method, of class OperonRecord.
     */
    @Test
    public void testGetScore() {
        System.out.println("getScore");
        init();
        double expResult = 0.0;
        double result = instance.getScore();
        assertEquals(expResult, result, 0.0);
    }

    /**
     * Test of getStrand method, of class OperonRecord.
     */
    @Test
    public void testGetStrand() {
        System.out.println("getStrand");
        init();
        char expResult = '+';
        char result = instance.getStrand();
        assertEquals(expResult, result);
    }

    /**
     * Test of getPhase method, of class OperonRecord.
     */
    @Test
    public void testGetPhase() {
        System.out.println("getPhase");
        init();
        String expResult = ".";
        String result = instance.getPhase();
        assertEquals(expResult, result);
    }

    /**
     * Test of getTypeGeneToken method, of class OperonRecord.
     */
    @Test
    public void testGetTypeGeneToken() {
        System.out.println("getTypeGeneToken");
        init();
        OperonRecord instance = new OperonRecord();
        String expResult = "CDS";
        String result = instance.getTypeGeneToken();
        assertEquals(expResult, result);
    }

    /**
     * Test of getTypeGapToken method, of class OperonRecord.
     */
    @Test
    public void testGetTypeGapToken() {
        System.out.println("getTypeGapToken");
        init();
        String expResult = "GAP";
        String result = instance.getTypeGapToken();
        assertEquals(expResult, result);
    }

    /**
     * Test of maxGap method, of class OperonRecord.
     */
    @Test
    public void testMaxGap() {
        System.out.println("maxGap");
        init();
        ScoredRegionRecord expResult =this.srr.get(36);
        ScoredRegionRecord result = instance.maxGap();
        assertEquals(expResult, result);
    }

    /**
     * Test of minGap method, of class OperonRecord.
     */
    @Test
    public void testMinGap() {
        System.out.println("minGap");
        init();
        ScoredRegionRecord expResult = this.srr.get(32);
        ScoredRegionRecord result = instance.minGap();
        assertEquals(expResult, result);
    }

    /**
     * Test of get method, of class OperonRecord.
     */
    @Test
    public void testGet() {
        System.out.println("get");
        init();
        String exp = "NC_009012.1\tORNLOperonFinder\tOPERON\t25946\t26599\t0.0\t+\t.\t25946 26257 +; 26276 26599 +; ";
        String result = instance.get();
        //System.err.println(result);
        assertEquals(exp, result);

    }

    /**
     * Test of set method, of class OperonRecord.
     */
    @Test
    public void testSet() {
        System.out.println("set");
        OperonRecord o = new OperonRecord();
        String expResult = "dsf";
        o.set(expResult);
    }

    /**
     * Test of length method, of class OperonRecord.
     */
    @Test
    public void testLength() {
        System.out.println("length");
        init();
        int expResult = 654;
        int result = instance.length();
        assertEquals(expResult, result);
    }

    /**
     * Test of getWeight method, of class OperonRecord.
     */
    @Test
    public void testGetWeight() {
        System.out.println("getWeight");
        OperonRecord instance = new OperonRecord();
        double expResult = 0.0;
        double result = instance.getWeight();
        assertEquals(expResult, result, 0.0);
    }

    /**
     * Test of getQueryID method, of class OperonRecord.
     */
    @Test
    public void testGetQueryID() {
        System.out.println("getQueryID");
        init();
        String expResult = ".";
        String result = instance.getQueryID();
        assertEquals(expResult, result);
    }

    /**
     * Test of getSubjectID method, of class OperonRecord.
     */
    @Test
    public void testGetSubjectID() {
        System.out.println("getSubjectID");
        init();
        String expResult = "ORNLOperonFinder";
        String result = instance.getSubjectID();
        assertEquals(expResult, result);
    }

    /**
     * Test of compareTo method, of class OperonRecord.
     */
    @Test
    public void testCompareTo() {
        System.out.println("compareTo");
        init();
        int expResult = 0;
        int result = instance.compareTo(instance);
        assertEquals(expResult, result);
        result = instance.compareTo(instance2); //instance < instance2
        assertEquals(-1,result);
        result = instance2.compareTo(instance); //instance2 > instance
        assertEquals(1,result);
    }

    public void lineinit(){

lines.add("NC_009012.1	RefSeq	CDS	104	1720	1.572665429808287	+	0	locus_tag=Cthe_0001;note=PFAM:%20Resolvase-like%3B%20Recombinase%3B%0AKEGG:%20efa:EF2283%20site-specific%20recombinase%2C%20resolvase%20family%2C%20putative;transl_table=11;product=recombinase;protein_id=YP_001036436.1;db_xref=InterPro:IPR006119;db_xref=InterPro:IPR011109;db_xref=GI:125972526;db_xref=GeneID:4810536;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	1721	1882	1.0061728395061729	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	1883	2599	0.904463040446304	+	0	locus_tag=Cthe_0002;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036437.1;db_xref=InterPro:IPR008262;db_xref=GI:125972527;db_xref=GeneID:4808829;exon_number=1");
lines.add("NC_009012.1	RefSeq	CDS	2599	3525	1.4724919093851132	+	0	locus_tag=Cthe_0003;note=KEGG:%20tde:TDE2014%20ankyrin%20repeat%20protein;transl_table=11;product=ankyrin%20repeat-containing%20protein;protein_id=YP_001036438.1;db_xref=InterPro:IPR002110;db_xref=GI:125972528;db_xref=GeneID:4808816;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	3526	3873	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	3874	9699	0.9496223824236183	+	0	locus_tag=Cthe_0004;note=TIGRFAM:%20YD%20repeat%20protein%3B%0APFAM:%20YD%20repeat%3B%0AKEGG:%20mba:Mbar_A3399%20hypothetical%20protein;transl_table=11;product=YD%20repeat-containing%20protein;protein_id=YP_001036439.1;db_xref=InterPro:IPR002086;db_xref=InterPro:IPR006530;db_xref=GI:125972529;db_xref=GeneID:4808817;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	9700	9714	0.5	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	9715	10569	0.7888888888888889	+	0	locus_tag=Cthe_0005;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036440.1;db_xref=GI:125972530;db_xref=GeneID:4808818;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	10570	10817	0.4576612903225806	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	10818	11207	0.16538461538461538	+	0	locus_tag=Cthe_0006;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036441.1;db_xref=InterPro:IPR001220;db_xref=GI:125972531;db_xref=GeneID:4808819;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	11208	11460	0.1976284584980237	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	11461	11991	1.3248587570621468	+	0	locus_tag=Cthe_0007;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036442.1;db_xref=GI:125972532;db_xref=GeneID:4808820;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	11992	12186	0.3923076923076923	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	12187	12486	1.2966666666666666	+	0	locus_tag=Cthe_0008;note=KEGG:%20dsy:DSY4671%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036443.1;db_xref=GI:125972533;db_xref=GeneID:4808821;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	12487	12554	0.9264705882352942	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	12555	18074	1.609963768115942	+	0	locus_tag=Cthe_0009;note=PFAM:%20YD%20repeat%3B%0AKEGG:%20mba:Mbar_A3399%20hypothetical%20protein;transl_table=11;product=YD%20repeat-containing%20protein;protein_id=YP_001036444.1;db_xref=InterPro:IPR006530;db_xref=GI:125972534;db_xref=GeneID:4808822;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	18075	18108	1.5	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	18109	18483	2.712	+	0	locus_tag=Cthe_0010;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036445.1;db_xref=GI:125972535;db_xref=GeneID:4808823;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	18484	18823	0.7308823529411764	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	18824	19096	0.10805860805860806	+	0	locus_tag=Cthe_0011;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036446.1;db_xref=GI:125972536;db_xref=GeneID:4808824;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	19097	19301	1.3926829268292682	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	19302	19490	2.037037037037037	+	0	locus_tag=Cthe_0012;note=TIGRFAM:%20YD%20repeat%20protein;transl_table=11;product=YD%20repeat-containing%20protein;protein_id=YP_001036447.1;db_xref=InterPro:IPR006530;db_xref=GI:125972537;db_xref=GeneID:4808825;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	19491	19559	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	19560	19913	0.10451977401129943	+	0	locus_tag=Cthe_0013;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036448.1;db_xref=GI:125972538;db_xref=GeneID:4808826;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	19914	20124	0.34834123222748814	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	20125	20418	0.2857142857142857	+	0	locus_tag=Cthe_0014;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036449.1;db_xref=GI:125972539;db_xref=GeneID:4808827;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	20419	20532	0.2149122807017544	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	20533	22653	3.107967939651108	+	0	locus_tag=Cthe_0015;note=PFAM:%20cellulosome%20enzyme%2C%20dockerin%20type%20I%3B%20glycoside%20hydrolase%2C%20family%2043%3B%20alpha-L-arabinofuranosidase%20B%3B%0AKEGG:%20bsu:BG11130%20similar%20to%20arabinan%20endo-1%2C5-alpha-L-arabinosidase;transl_table=11;product=alpha-L-arabinofuranosidase%20B;protein_id=YP_001036450.1;db_xref=InterPro:IPR002048;db_xref=InterPro:IPR002105;db_xref=InterPro:IPR006710;db_xref=InterPro:IPR007934;db_xref=GI:125972540;db_xref=GeneID:4808828;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	22654	23019	134.5860655737705	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	23020	23496	553.3144654088051	+	0	locus_tag=Cthe_0016;note=PFAM:%20Ferritin%20and%20Dps%3B%0AKEGG:%20ctc:CTC00138%20ferritin;transl_table=11;product=Ferritin%20and%20Dps;protein_id=YP_001036451.1;db_xref=InterPro:IPR001519;db_xref=InterPro:IPR008331;db_xref=InterPro:IPR009040;db_xref=GI:125972541;db_xref=GeneID:4808781;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	23497	24055	13.878354203935599	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	24056	25915	12.36505376344086	+	0	locus_tag=Cthe_0017;note=PFAM:%20protein%20of%20unknown%20function%20DUF1538%3B%0AKEGG:%20dsy:DSY3597%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036452.1;db_xref=InterPro:IPR011435;db_xref=GI:125972542;db_xref=GeneID:4808782;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	25916	25945	16.533333333333335	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	25946	26257	22.020833333333332	+	0	locus_tag=Cthe_0018;note=KEGG:%20dsy:DSY3596%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036453.1;db_xref=GI:125972543;db_xref=GeneID:4808783;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	26258	26275	36.333333333333336	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	26276	26599	50.901234567901234	+	0	locus_tag=Cthe_0019;note=KEGG:%20tde:TDE0322%20regulatory%20protein%2C%20P-II%20family;transl_table=11;product=P-II%20family%20regulatory%20protein;protein_id=YP_001036454.1;db_xref=GI:125972544;db_xref=GeneID:4808784;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	26600	26796	2.032994923857868	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	26797	27756	0.31614583333333335	+	0	locus_tag=Cthe_0020;EC_number=2.8.1.6;note=KEGG:%20ctc:CTC00151%20biotin%20synthase%3B%0ATIGRFAM:%20biotin%20synthase%3B%0APFAM:%20Radical%20SAM%3B%20biotin%20and%20thiamin%20synthesis%20associated%3B%0ASMART:%20Elongator%20protein%203%2FMiaB%2FNifB;transl_table=11;product=biotin%20synthase;protein_id=YP_001036455.1;db_xref=InterPro:IPR002684;db_xref=InterPro:IPR006638;db_xref=InterPro:IPR007197;db_xref=InterPro:IPR010722;db_xref=GI:125972545;db_xref=GeneID:4808785;exon_number=1");
lines.add("NC_009012.1	RefSeq	CDS	27756	28487	0.0	+	0	locus_tag=Cthe_0021;EC_number=6.3.3.3;note=TIGRFAM:%20dethiobiotin%20synthase%3B%0AKEGG:%20cac:CAC1361%20dethiobiotin%20synthetase;transl_table=11;product=dethiobiotin%20synthase;protein_id=YP_001036456.1;db_xref=InterPro:IPR004472;db_xref=GI:125972546;db_xref=GeneID:4808786;exon_number=1");
lines.add("NC_009012.1	RefSeq	CDS	28483	29646	0.0	+	0	locus_tag=Cthe_0022;EC_number=2.3.1.29;note=KEGG:%20gsu:GSU2629%208-amino-7-oxononanoate%20synthase%3B%0ATIGRFAM:%208-amino-7-oxononanoate%20synthase%3B%0APFAM:%20aminotransferase%2C%20class%20I%20and%20II%3B%20aminotransferase%20class-III;transl_table=11;product=2-amino-3-ketobutyrate%20coenzyme%20A%20ligase;protein_id=YP_001036457.1;db_xref=InterPro:IPR001917;db_xref=InterPro:IPR004723;db_xref=InterPro:IPR004839;db_xref=InterPro:IPR005814;db_xref=GI:125972547;db_xref=GeneID:4808787;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	29647	29648	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	29649	30422	0.43733850129198965	+	0	locus_tag=Cthe_0023;note=KEGG:%20gka:GK3098%20pimeloyl-CoA%20synthesis%20%28biotin%20biosynthesis%29;transl_table=11;product=pimeloyl-CoA%20synthesis%20%28biotin%20biosynthesis%29;protein_id=YP_001036458.1;db_xref=InterPro:IPR003089;db_xref=InterPro:IPR008262;db_xref=GI:125972548;db_xref=GeneID:4808788;exon_number=1");
lines.add("NC_009012.1	RefSeq	CDS	30415	31263	0.20141342756183744	+	0	locus_tag=Cthe_0024;note=TIGRFAM:%20biotin%20biosynthesis%20protein%20BioC%3B%0APFAM:%20NodS%3B%20Methyltransferase%20type%2011%3B%20Methyltransferase%20type%2012%3B%0AKEGG:%20btk:BT9727_3857%20possible%20biotin%20synthesis%20protein;transl_table=11;product=biotin%20biosynthesis%20protein%20BioC;protein_id=YP_001036459.1;db_xref=InterPro:IPR000051;db_xref=InterPro:IPR008715;db_xref=InterPro:IPR011814;db_xref=InterPro:IPR013216;db_xref=InterPro:IPR013217;db_xref=GI:125972549;db_xref=GeneID:4808789;exon_number=1");
lines.add("NC_009012.1	RefSeq	CDS	31259	32629	0.25054704595185995	+	0	locus_tag=Cthe_0025;EC_number=2.6.1.62;note=TIGRFAM:%20adenosylmethionine-8-amino-7-oxononanoate%20aminotransferase%3B%0APFAM:%20aminotransferase%20class-III%3B%0AKEGG:%20cac:CAC1362%20adenosylmethionine-8-amino-7-oxononanoate%20aminotranferase;transl_table=11;product=adenosylmethionine-8-amino-7-oxononanoate%20aminotransferase;protein_id=YP_001036460.1;db_xref=InterPro:IPR005814;db_xref=InterPro:IPR005815;db_xref=GI:125972550;db_xref=GeneID:4808790;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	32630	34059	1.2667832167832167	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	34060	34428	0.1897018970189702	+	0	locus_tag=Cthe_0027;note=KEGG:%20cpe:CPE1018%204-amino-4-deoxychorismate%20lyase;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036461.1;db_xref=GI:125972551;db_xref=GeneID:4808792;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	34429	34617	2.17989417989418	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	34618	35625	1.4136904761904763	-	0	locus_tag=Cthe_0028;note=KEGG:%20cac:CAC1496%20uncharacterized%20protein%2C%20homolog%20of%20YcgL%20B.subtilis;transl_table=11;product=uncharacterized%20protein%2C%20YcgL-like%20protein;protein_id=YP_001036462.1;db_xref=GI:125972552;db_xref=GeneID:4808793;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	35626	36061	3.4025229357798166	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	36062	36697	2.5888364779874213	+	0	locus_tag=Cthe_0029;note=KEGG:%20lac:LBA1408%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036463.1;db_xref=GI:125972553;db_xref=GeneID:4808794;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	36698	36869	1.3430232558139534	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	36870	37577	0.7725988700564972	+	0	locus_tag=Cthe_0030;note=PFAM:%20phosphatidate%20cytidylyltransferase%3B%0AKEGG:%20sth:STH1870%20hypothetical%20protein;transl_table=11;product=phosphatidate%20cytidylyltransferase;protein_id=YP_001036464.1;db_xref=InterPro:IPR000374;db_xref=GI:125972554;db_xref=GeneID:4808795;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	37578	37584	1.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	37585	38205	0.2938808373590982	+	0	locus_tag=Cthe_0031;note=KEGG:%20sth:STH1869%20putative%20membrane%20transporter;transl_table=11;product=putative%20membrane%20transporter;protein_id=YP_001036465.1;db_xref=GI:125972555;db_xref=GeneID:4808796;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	38206	38315	0.36818181818181817	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	38316	40085	2.403954802259887	-	0	locus_tag=Cthe_0032;note=PFAM:%20glycoside%20hydrolase%2C%20family%2026%3B%20cellulosome%20enzyme%2C%20dockerin%20type%20I%3B%0AKEGG:%20sde:Sde_3691%20mannan%20endo-1%2C4-beta-mannosidase;transl_table=11;product=glycoside%20hydrolase%20family%20protein;protein_id=YP_001036466.1;db_xref=InterPro:IPR000805;db_xref=InterPro:IPR002048;db_xref=InterPro:IPR002105;db_xref=GI:125972556;db_xref=GeneID:4808797;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	40086	40453	0.360054347826087	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	40454	43117	0.7306681681681682	+	0	locus_tag=Cthe_0033;note=TIGRFAM:%20small%20GTP-binding%20protein%3B%0APFAM:%20elongation%20factor%20G-like%3B%20protein%20synthesis%20factor%2C%20GTP-binding%3B%20elongation%20factor%20G%2C%20domain%20IV%3B%20protein%20of%20unknown%20function%20DUF901%3B%0AKEGG:%20dsy:DSY1131%20hypothetical%20protein;transl_table=11;product=small%20GTP-binding%20protein;protein_id=YP_001036467.1;db_xref=InterPro:IPR000640;db_xref=InterPro:IPR000795;db_xref=InterPro:IPR001951;db_xref=InterPro:IPR002127;db_xref=InterPro:IPR005225;db_xref=InterPro:IPR005517;db_xref=InterPro:IPR010298;db_xref=GI:125972557;db_xref=GeneID:4808798;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	43118	43239	0.29918032786885246	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	43240	43896	1.9672754946727549	-	0	locus_tag=Cthe_0034;note=PFAM:%20cyclic%20nucleotide-binding%3B%0AKEGG:%20dsy:DSY1133%20hypothetical%20protein;transl_table=11;product=cyclic%20nucleotide-binding%20protein;protein_id=YP_001036468.1;db_xref=InterPro:IPR000595;db_xref=InterPro:IPR012318;db_xref=GI:125972558;db_xref=GeneID:4808799;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	43897	44010	0.2236842105263158	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	44011	44712	0.25997150997151	+	0	locus_tag=Cthe_0035;note=PFAM:%204Fe-4S%20ferredoxin%2C%20iron-sulfur%20binding%3B%0AKEGG:%20dsy:DSY0715%20hypothetical%20protein;transl_table=11;product=4Fe-4S%20ferredoxin%2C%20iron-sulfur%20binding;protein_id=YP_001036469.1;db_xref=InterPro:IPR001450;db_xref=GI:125972559;db_xref=GeneID:4808800;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	44713	44774	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	44775	46400	0.02859778597785978	+	0	locus_tag=Cthe_0036;note=catalyzes%20the%20reduction%20of%20hydroxylamine%20to%20ammonia%20and%20water;transl_table=11;product=hydroxylamine%20reductase;protein_id=YP_001036470.1;db_xref=InterPro:IPR004137;db_xref=InterPro:IPR010048;db_xref=GI:125972560;db_xref=GeneID:4808801;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	46401	46507	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	46508	46933	0.0	-	0	locus_tag=Cthe_0037;note=PFAM:%20heat%20shock%20protein%20Hsp20%3B%20CS%3B%0AKEGG:%20aae:aq_1283%20small%20heat%20shock%20protein%20%28class%20I%29;transl_table=11;product=heat%20shock%20protein%20Hsp20;protein_id=YP_001036471.1;db_xref=InterPro:IPR002068;db_xref=InterPro:IPR007052;db_xref=GI:125972561;db_xref=GeneID:4808802;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	46934	47034	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	47035	47289	0.0	+	0	locus_tag=Cthe_0038;note=KEGG:%20cac:CAC0119%20chemotaxis%20protein%20cheW;transl_table=11;product=chemotaxis%20protein%20cheW;protein_id=YP_001036472.1;db_xref=InterPro:IPR002545;db_xref=GI:125972562;db_xref=GeneID:4808803;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	47290	47344	0.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	47345	49213	0.14633493846976994	+	0	locus_tag=Cthe_0039;note=PFAM:%20histidine%20kinase%2C%20HAMP%20region%3B%20chemotaxis%20sensory%20transducer%3B%0AKEGG:%20cac:CAC0120%20membrane-associated%20methyl-accepting%20chemotaxis%20protein%20with%20HAMP%20domain;transl_table=11;product=methyl-accepting%20chemotaxis%20sensory%20transducer;protein_id=YP_001036473.1;db_xref=InterPro:IPR003660;db_xref=InterPro:IPR004089;db_xref=InterPro:IPR004090;db_xref=GI:125972563;db_xref=GeneID:4808804;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	49214	49459	0.4898373983739837	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	49460	52120	1.2237880496054114	+	0	locus_tag=Cthe_0040;EC_number=3.2.1.91;EC_number=3.2.1.4;note=PFAM:%20glycoside%20hydrolase%2C%20family%209%3B%20type%203a%2C%20cellulose-binding%3B%0AKEGG:%20cac:CAC0913%20possible%20non-processive%20endoglucanase%20family%209%2C%20secreted%3B%20CelG%20ortholog%3B%20dockerin%20and%20cellulose-binding%20domain;transl_table=11;product=cellulose%201%2C4-beta-cellobiosidase;protein_id=YP_001036474.1;db_xref=InterPro:IPR001701;db_xref=InterPro:IPR001956;db_xref=GI:125972564;db_xref=GeneID:4808805;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	52121	52127	1.0	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	52128	52559	0.3090277777777778	-	0	locus_tag=Cthe_0041;note=KEGG:%20gka:GK1404%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036475.1;db_xref=GI:125972565;db_xref=GeneID:4808806;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	52560	52783	0.20535714285714285	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	52784	53983	1.0183333333333333	+	0	locus_tag=Cthe_0042;note=TIGRFAM:%20small%20GTP-binding%20protein%3B%0APFAM:%20GTP-binding%20protein%2C%20HSR1-related%3B%20Miro-like%3B%0AKEGG:%20cac:CAC1651%20predicted%20GTPase%20with%20uncharacterized%20domain%2C%20ortholog%20of%20T.maritima%20%284980952%29;transl_table=11;product=small%20GTP-binding%20protein;protein_id=YP_001036476.1;db_xref=InterPro:IPR002917;db_xref=InterPro:IPR005225;db_xref=InterPro:IPR006073;db_xref=InterPro:IPR013684;db_xref=GI:125972566;db_xref=GeneID:4808807;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	53984	54372	1.6773778920308484	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	54373	56598	2.0509883198562444	+	0	locus_tag=Cthe_0043;note=PFAM:%20glycoside%20hydrolase%2C%20family%209%3B%20type%203a%2C%20cellulose-binding%3B%20cellulosome%20enzyme%2C%20dockerin%20type%20I%3B%0AKEGG:%20bld:BLi01880%20hypothetical%20protein;transl_table=11;product=glycoside%20hydrolase%20family%20protein;protein_id=YP_001036477.1;db_xref=InterPro:IPR001701;db_xref=InterPro:IPR001956;db_xref=InterPro:IPR002048;db_xref=InterPro:IPR002105;db_xref=GI:125972567;db_xref=GeneID:4808808;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	56599	56727	0.24806201550387597	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	56728	58326	0.4606003752345216	-	0	locus_tag=Cthe_0044;note=PFAM:%20cellulosome%20enzyme%2C%20dockerin%20type%20I%3B%0AKEGG:%20mhu:Mhun_2822%20spore%20coat%20assembly%20protein-like;transl_table=11;product=cellulosome%20enzyme%2C%20dockerin%20type%20I;protein_id=YP_001036478.1;db_xref=InterPro:IPR002105;db_xref=GI:125972568;db_xref=GeneID:4808809;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	58327	58679	0.3555240793201133	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	58680	59486	0.5885997521685254	+	0	locus_tag=Cthe_0045;note=PFAM:%20copper%20amine%20oxidase-like%3B%0AKEGG:%20mta:Moth_0517%20N-acetylmuramoyl-L-alanine%20amidase;transl_table=11;product=copper%20amine%20oxidase-like%20protein;protein_id=YP_001036479.1;db_xref=InterPro:IPR012854;db_xref=GI:125972569;db_xref=GeneID:4808810;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	59487	59534	2.5	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	59535	62234	2.495185185185185	+	0	locus_tag=Cthe_0046;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036480.1;db_xref=GI:125972570;db_xref=GeneID:4808811;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	62235	62484	0.564	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	62485	63291	0.9516728624535316	+	0	locus_tag=Cthe_0047;note=PFAM:%20copper%20amine%20oxidase-like%3B%0AKEGG:%20mta:Moth_0517%20N-acetylmuramoyl-L-alanine%20amidase;transl_table=11;product=copper%20amine%20oxidase-like%20protein;protein_id=YP_001036481.1;db_xref=InterPro:IPR012854;db_xref=GI:125972571;db_xref=GeneID:4808812;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	63292	63313	0.7954545454545454	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	63314	64120	0.8184634448574969	+	0	locus_tag=Cthe_0048;note=PFAM:%20copper%20amine%20oxidase-like%3B%0AKEGG:%20mta:Moth_0517%20N-acetylmuramoyl-L-alanine%20amidase;transl_table=11;product=copper%20amine%20oxidase-like%20protein;protein_id=YP_001036482.1;db_xref=InterPro:IPR012854;db_xref=GI:125972572;db_xref=GeneID:4808813;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	64121	64208	1.9261363636363635	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	64209	64868	0.40454545454545454	+	0	locus_tag=Cthe_0049;note=PFAM:%20helix-turn-helix%20motif%3B%20peptidase%20S24%2C%20S26A%20and%20S26B%3B%0AKEGG:%20ctc:CTC00173%20predicted%20transcriptional%20regulator;transl_table=11;product=XRE%20family%20transcriptional%20regulator;protein_id=YP_001036483.1;db_xref=InterPro:IPR001387;db_xref=InterPro:IPR006198;db_xref=GI:125972573;db_xref=GeneID:4808814;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	64869	65171	0.9983498349834984	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	65172	66128	0.2601880877742947	+	0	locus_tag=Cthe_0050;note=KEGG:%20cac:CAC0870%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036484.1;db_xref=GI:125972574;db_xref=GeneID:4808815;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	66129	66311	0.01639344262295082	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	66312	67568	0.4236276849642005	+	0	locus_tag=Cthe_0051;note=KEGG:%20sth:STH1268%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036485.1;db_xref=GI:125972575;db_xref=GeneID:4808746;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	67569	67771	7.061576354679803	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	67772	69028	5.888225934765314	+	0	locus_tag=Cthe_0052;note=KEGG:%20sth:STH1268%20hypothetical%20protein;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036486.1;db_xref=GI:125972576;db_xref=GeneID:4808747;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	69029	69308	2.4660714285714285	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	69309	71690	9.319479429051217	+	0	locus_tag=Cthe_0053;EC_number=1.17.4.1;note=Catalyzes%20the%20rate-limiting%20step%20in%20dNTP%20synthesis;transl_table=11;product=ribonucleotide-diphosphate%20reductase%20subunit%20alpha;protein_id=YP_001036487.1;db_xref=InterPro:IPR000788;db_xref=InterPro:IPR013344;db_xref=InterPro:IPR013509;db_xref=GI:125972577;db_xref=GeneID:4808748;exon_number=1");
lines.add("NC_009012.1	RefSeq	GAP	71691	71947	0.9844357976653697	.	.	.");
lines.add("NC_009012.1	RefSeq	CDS	71948	74134	2.2181069958847734	+	0	locus_tag=Cthe_0054;note=PFAM:%20S-layer-like%20region%3B%20protein%20of%20unknown%20function%20DUF187%3B%0AKEGG:%20btk:BT9727_0818%20conserved%20hypothetical%20protein%20and%20possible%20S-layer%20protein%20fusion;transl_table=11;product=hypothetical%20protein;protein_id=YP_001036488.1;db_xref=InterPro:IPR001119;db_xref=InterPro:IPR003790;db_xref=GI:125972578;db_xref=GeneID:4808749;exon_number=1");

}

}